/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pos.beans;

import entities.Cliente;
import entities.DescuentoCliente;
import entities.Usuario;
import facades.ClienteFacade;
import java.io.Serializable;
import java.util.Date;
import javax.enterprise.context.SessionScoped;
import javax.enterprise.event.Event;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import javax.inject.Named;
import qualifiers.EventoEntidadEditada;
import qualifiers.EventoEntidadElegida;
import qualifiers.UsuarioLogeado;

/**
 *
 * @author damfercer
 */
@Named
@SessionScoped
public class EditarClienteBean implements Serializable{
    private Cliente clienteElegido;
    @Inject
    private ClienteFacade clienteFacade;
    @Inject
    @UsuarioLogeado
    private Usuario usuarioLogeado;
    @Inject
    @EventoEntidadEditada
    private Event<Cliente> eventoClienteEditado;
    private DescuentoCliente descuentoCliente;

    /**
     * Creates a new instance of NuevoProductoBean
     */
    public EditarClienteBean() {
    }

    /**
     * @return the productoEditado
     */
    public Cliente getClienteElegido() {
        return clienteElegido;
    }

    /**
     * @param clienteElegido the productoEditado to set
     */
    public void setClienteElegido(Cliente clienteElegido) {
        this.clienteElegido = clienteElegido;
    }
    
    public void editarCliente(){
        clienteElegido.setFechaUltimaModificacion(new Date());
        if(descuentoCliente!=null){
            clienteElegido.setDescuento(descuentoCliente.getDescuento());
        }
        clienteFacade.edit(clienteElegido);
        eventoClienteEditado.fire(clienteElegido);
    }
    
    public void onElegirProducto(@Observes @EventoEntidadElegida Cliente c){
        this.clienteElegido=c;
    }

    /**
     * @return the descuentoCliente
     */
    public DescuentoCliente getDescuentoCliente() {
        return descuentoCliente;
    }

    /**
     * @param descuentoCliente the descuentoCliente to set
     */
    public void setDescuentoCliente(DescuentoCliente descuentoCliente) {
        this.descuentoCliente = descuentoCliente;
    }
}
